package almacenes.controlador.constantes;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.apache.log4j.Logger;

public class MetodosGenerales {
	private final Logger logger = Logger.getLogger(MetodosGenerales.class.getName());
	private SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
	 public String capturarFecha(){
		 Date fecha = new Date();
         String fechaActual = formatoFecha.format(fecha);
         return fechaActual ;
 }
	 public Date capturarFechaDate(){
         Date fechaActual = null;
		try {
			fechaActual = formatoFecha.parse(capturarFecha());
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
         return fechaActual ;
 }
	 
	 public  boolean isFechaValida(String fechax) {
		  try {
		      formatoFecha.setLenient(false);
		      formatoFecha.parse(fechax);
		  } catch (ParseException e) {
		      return false;
		  }
		  return true;
		}
	 
	 public String fechaInicioMenorFechaFin(String sFechaInicio, String sFechaFin){
		 String resultado = "";
		  formatoFecha.setLenient(false);
		  String valorI = this.fechaIngresadaMayorFechaActual(sFechaInicio);
		  String valorII = this.fechaIngresadaMayorFechaActual(sFechaFin);
		  try {
			  if(valorI.equals("OK")){
				  if(valorII.equals("OK")){
					  
					  Date dateI = formatoFecha.parse(sFechaInicio);
						Date dateF = formatoFecha.parse(sFechaFin);
						if(dateI.before(dateF)){
							resultado = "OK";
						}
						else{
							resultado="La fecha de inicio, debe ser menor a la fecha fin";
						}
					 System.out.println("before To : " +dateI.before(dateF)); 
					 
				  }else{
					  resultado = valorII;
				  }
			  }else{
				  resultado = valorI;
			  }
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
	      System.out.println("Resultado Final :" +resultado);
		 return resultado;
	 }
	 
	 
	 public String fechaIngresadaMayorFechaActual(String sFechaIngresada){
		 String resultado = "";
		  formatoFecha.setLenient(false);
		 
		  try {
			
			if(isFechaValida(sFechaIngresada)){
				Date dateI = formatoFecha.parse(sFechaIngresada);
				if(dateI.after(capturarFechaDate())){
					resultado = "OK";
				}/*else if(dateI.equals(capturarFechaDate())){
					resultado = "OK";
				}*/else{
					System.out.println("dateI : " + dateI);
					System.out.println("fecha : " + capturarFechaDate());
					resultado="La fecha ingresada, debe ser posterior  a la fecha actual";
				}
			}else{
				resultado="Ingrese una fecha valida";
			}
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
	      
		 return resultado;
	 }
	 
	 public boolean isMenorFechaActual(String sFechaIngresada){
		 boolean resultado = true;
		  formatoFecha.setLenient(false);
		  try {
			
				Date dateI = formatoFecha.parse(sFechaIngresada);
				if(dateI.after(capturarFechaDate())){
					resultado = true;
				}/*else if(dateI.equals(fecha)){
					resultado = true;
				}*/else{
					resultado=false;
				}
			
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
	      
		 return resultado;
	 }
	 

}
